<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 案例1：将输入的十进制数变成二进制

        //     解析
        //     十进制转二进制算法是将十进制数不断的除以二获取其余数的倒叙拼接
        //     例: 11转化为二进制
        //     1| 11 ---- 1 |5 -- 0 |2 -- 1 |1 -- 0 11 的二进制为 01011 => 1011 
        var arr = [];
        function turn(a) {
            arr.unshift(a % 2);
            if (a == 0) {
                return;
            }
            turn(parseInt(a / 2));
        }
        turn(11);

        if (arr[0] == 0) {
            arr.shift();
        }
        console.log(arr.join(""));



        // 案例2：将输入的十进制数变成十六进制

        //     解析
        //     十进制转十六进制算法是将十进制数不断的除以16获取其余数的倒叙拼接
        // var arr = [];
        // function turn(a) {
        //     var c = a % 16;
        //     switch (c) {
        //         case 10:
        //             c = "a";
        //             break;
        //         case 11:
        //             c = "b";
        //             break;
        //         case 12:
        //             c = "c";
        //             break;
        //         case 13:
        //             c = "d";
        //             break;
        //         case 14:
        //             c = "e";
        //             break;
        //         case 15:
        //             c = "f";
        //             break;
        //     }
        //     arr.unshift(c);
        //     if (a == 0) {
        //         return;
        //     }
        //     turn(parseInt(a / 16));
        // }
        // turn(1028);
        // if (arr[0] === 0) {
        //     arr.shift();
        // }
        // console.log(arr.join(""));



        // 案例3：对所有质数求和

        //     解析
        //     求质数的方法是对遍历从2到该数字开根号后的值是否可以整除当前数，若没有任何数字可以整除表示该数字是质数
        // var sum = 0;
        // function num(a) {
        //     for (var i = 2; i < a; i++) {
        //         if (a % i == 0) {
        //             return false;
        //         }
        //     }
        //     return true;
        // }


        // for (var i = 2; i < 100; i++) {
        //     if (num(i)) {
        //         sum += i;
        //     }
        // }
        // console.log(sum);






        // 案例4：范围内的数字求和

        //     解析
        //     本题可以通过Math方法获取两个数字的最大值,在通过循环遍历累加得到总和   

        //     代码
        //     sumAll([4，1]);
        //     sumAll([3，10]);
        // function sumAll(a) {
        //     var sum = 0;
        //     if (a[0] < a[1]) {
        //         for (var i = a[0]; i <= a[1]; i++) {
        //             sum += i;
        //         }
        //     } else {
        //         for (var i = a[1]; i <= a[0]; i++) {
        //             sum += i;
        //         }
        //     }
        //     console.log(sum);
        // }
        // sumAll([1, 5]) //15





        // 案例5：判断字符串是否是回文

        //     解析
        //     检查回文时，你需要先除去所有空格并且将所有字符转换成字母大写或字母小写。然后通过循环将字符串前一半的与字符串后一半倒叙一一比较，若都相等则是回文。
        //     代码

        function palindrome(a) {
            return a.replaceAll(" ", "").toLowerCase().split("").reverse().join("") == a.replaceAll(" ", "").toLowerCase();


        }
        // palindrome("1 eye for of 1 eye") //false

        console.log(palindrome("Eye1 for of 1 eye")); //ture
    </script>
</body>

</html>